In various network schemes, such as the internet, network processors offer real time processing of message packets and packet forwarding from a received location to a delivered location. As internet or other network traffic increases, deep-packet processing functions (such as packet compression, encryption, filtering, classification, hashing, etc.) are moving from the server to the network edge. As this happens, at the network edge there is a greater demand for high-throughput (e.g., 10 Gigabits per second {Gbps} or higher) deep-packet processing function. Given that the deep-packet processing functions (e.g. encryption, compression, hashing, etc.) require many operations on the data in the packet, the network processor becomes overloaded and not able to perform these deep-packet processing functions efficiently at the high-throughput rate. Therefore, it becomes desirable and, in some cases, even necessary to maintain the high-throughput rate to perform these special, intensive deep-packet processing functions to consider using a coprocessor linked to a network processor. However, at these high-throughput rates, it is increasingly inefficient to attempt to maintain packet information and states regarding exchanges between a network processor and a coprocessor. One of the reasons for this is the requirement to maintain sufficiently large buffers and state retrieval algorithm with regard to each of the packets transferred between the coprocessor and the network processor. Hence, the benefit of the coprocessor and network processor being able to perform the required deep-packet processing functions is significantly impacted by the increasing inefficiency of maintaining packet information and states.